package com.tuzhi.sys.service;

import com.tuzhi.base.service.BaseService;
import com.tuzhi.sys.dto.SysMenuTreeDto;
import com.tuzhi.sys.jpa.entity.SysMenuEntity;

import java.util.List;

public interface SysMenuService extends BaseService<SysMenuEntity, Long> {

    List<SysMenuEntity> loadAllSysMenu();

    /**
     * 查找所有菜单，以树形数据返回
     *
     * @return
     */
    List<SysMenuTreeDto> loadAllMenuTree();

    /**
     * 查找指定ID下的所以菜单，以树形数据返回
     *
     * @return
     */
    List<SysMenuTreeDto> loadMenuTreeById(Long id);

    /**
     * 根据权限标识找到菜单
     *
     * @param perms
     * @return
     */
    SysMenuEntity findByPerms(String perms);

    /**
     * 根据URL地址找到菜单
     *
     * @param url URL地址
     * @return
     */
    SysMenuEntity findByUrl(String url);

    /**
     * 查找所有的菜单权限标识集合
     *
     * @return
     */
    List<String> loadAllPerms();

    /**
     * 查找所有的菜单url集合
     *
     * @return
     */
    List<String> loadAllUrls();

}
